在每日面對各種用戶的需求時,如果我們沒有一套設計語言,我們就會在設計上遇到各種問題,例如:設計風格不一致、設計元件重複設計、設計元件不易重複使用、設計元件不易擴充等等。
「設計語言」也可以稱為「設計系統」,它是一套設計規範,用來解決設計上的問題,讓設計師可以在設計上更有效率,Design token 或許是設計語言的一部分,但它不是全部。
設計對很多工程師來說,就是一個「畫面」而已,是一個「美化」的工作,但設計其實是一個很大的領域,它包含了很多的知識,例如:心理學、認知科學、人機互動、使用者研究、資訊架構、視覺設計、互動...等等。我沒有要說一堆術語來忽悠你,我只是想說,設計是一個很大的領域,它不是只有「畫面」而已。
也因為它的門檻很低,我說的門檻低是因為並沒有一套標準來衡量「對」和「錯」,就跟料理一樣,你也可以從各種奇怪的組合搭配在一起做黑暗料理,只要你的定義是它吃不死人就是對的,但如果你的定義是他吃得好不好吃,那就是另一回事了,設計,也是那麼一回事。
很多人,尤其是對產業認知不熟悉的人,會直接拿起畫筆或一些線上製圖工具就開始畫「設計圖」,但這樣的設計圖,其實是沒有任何意義的,因為它沒有任何的依據。
那話說,我就很常遇到,有一些不專業的PM或主管,用自己的想像「畫出」設計圖,並那這個設計圖和客戶對搞,客戶最後也同意了,然後到了工程師手裡,工程師就開始為了實作這個設計圖而煩惱,因為這個設計圖,根本就是不可能實作的,但客戶卻認為這是可以實作的,因為他們看到的是「畫面」,而不是「設計」,而且這個可能是完全客製化的設計。
設計語言就好像我們這個部落的溝通管管,如果我說「不要」那麼就會是用「這個方式」表達,以後只要我們想到任何表達「不要」的方式,我們就可以用這個方式來表達,而不用每次都要重新發明一個新的方式來表達「不要」。
因此我們就會漸漸定義了一整套「表達」方式,這種表達方式包含了文字的大小、顏色、距離、出現方式、互動、動畫、組合以及限制。
對吧,很少人會提「限制」
為什麼需要限制?
有很多人,尤其是非工程師,很愛用一句話「在技術上,可不可行」?來判斷一件事可以不可以吃。
是多麼粗暴的方式,按照這個道理,大便也是可以吃的。
限制是因為當我們在建立一個「認知」體系後,最好就不要無緣無故取打破他,因為這不但會讓用習慣的人覺得很困擾,這會直接影響用的人的體驗,甚至會讓他們覺得你的產品很爛,心裡會默默的想「怎麼這個東西每次都不一樣」。
對於另外一個方面,有人提及說,如果我們為設計框下了這個限制,那麼我們的設計師就沒有辦法發揮他們的想像力了。
是真的嗎?
設計語言就是一個工具,它不是限制,就好比我們用的顏料,他就只是配色,如何組合出一幅畫,還是要看畫家的想像力,而不是顏料的問題,同理,設計語言也是一樣的,它只是一個工具,而不是限制。
我們其實生活上的大小事,都不是訂製的,為何我們的軟體開發,就會是訂製,但是卻要求要速度呢?
如果要求速度和效率,那麼訂製就肯定不是你要的效果,因為訂製就是要花時間的,而且還要花錢,如果你要求速度,那麼就要用標準化的方式來做,而不是訂製。
我們在開發的時候,要的是產品,不是藝術品,所以想像力被限制,是一件好事,因為這樣才能讓我們的產品更加的一致,而不是每個人都有自己的想像力,這樣的產品,就是一個藝術品,而不是產品。
反過來說,如果當一個經驗不夠豐富的設計師去設計一套設計語言,那麼這個設計語言就會變成一個「限制」。
尤其我們會很常以「我們不會那樣做的」來作為開場白,所以就直接忽略了一些可能性,如同我之前提到的,在程式上也有同樣的問題,因為考慮的不夠周全,所以每次都需要在往上添加新的功能和畫面,但這些都是我們之前沒有考慮到的,當不斷往上添加的時候,漸漸的事情就會失控,因為缺少了全面的考量和設計。
比如說,我們有一個「日期區間」選擇功能,我們希望,
但是有另外一個需求是。
當然,你可以做一個開關將「自動」關閉的功能關掉,也可以寫一個「如果有開始日期,就不要跑回去了」的判斷
可是這就違背了「零知識」使用的原則,因為每次你都要和使用者說「你要先選開始日期」,這樣的設計,就是不好的設計。
所以說到這裡,設計語言是包括「我們如何使用」的指南
對於一些人來說,設計就是一個「畫面」,它根本不在乎這個畫面是怎麼來的,只要有畫面就好了,但就是那麼「不重要」的事情,我們每天都在做,而且還花了很多時間在上面。
為什麼會這樣?
因為每一次我們都要重新發明一個新的設計,而且還要花時間去討論,這樣的設計,就是不好的設計。
要執行FID,就必須要有很好的設計師配合製作一套設計語言,這樣才可以減少設計上的時間,並且讓設計師可以專注在「設計」上,而不是「畫面」上。